from flask_bcrypt import Bcrypt
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
# from flask_cli import FlaskCLI

bcrypt = Bcrypt()
# cli = FlaskCLI()
db = SQLAlchemy()
login_manager = LoginManager()
login_manager.login_view = "app.login"  # 指定 登录页的视图
login_manager.login_message = "请登录后访问此页面"  # 用户登录提示
login_manager.session_protection = "strong"  # 防止用户恶意篡改 cookie


@login_manager.user_loader
def load_user(userid):
    """
    Flask_Login使用该函数检查给定id是否对应正确的用户对象
    :param userid: 用户id
    :return: User对象
    """
    from app.models import User
    return User.query.get(userid)
